package arithmetic.leecode_arthmetic;

/**
 * 小M有一个坏掉的计算器，它有两种功能可以操作屏幕上显示的数字：
 *
 * 将显示的数字乘以2；
 * 将显示的数字减去1。
 * 现在，计算器上显示的数字是 x，小M希望通过最少的操作次数，将数字变为 y。
 *
 * 请你帮忙计算一下，最少需要多少次操作才能将数字从 x 变为 y。
 *
 * 测试样例
 * 样例1：
 *
 * 输入：x = 2,y = 3
 * 输出：2
 *
 * 样例2：
 *
 * 输入：x = 4,y = 7
 * 输出：2
 *
 * 样例3：
 *
 * 输入：x = 3,y = 66
 * 输出：9
 */
public class Calculation {
    public static int solution(int x, int y) {
        // PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE
        // write code here
        if(y < x){
            return 0;
        }
        int count = 0;
        while (x < y) {
            if(y % x == 0){
                y = y / 2;
            }else {
                y = y + 1;
            }
            count ++;
            if(x == y){
                break;
            }
        }
        return count; // Placeholder return
    }

    public static void main(String[] args) {
        System.out.println(solution(2, 3) == 2 ? 1 : 0);
        System.out.println(solution(4, 7) == 2 ? 1 : 0);
        System.out.println(solution(3, 66) == 9 ? 1 : 0);
    }
}
